package com.xbongbong.saas.service;


import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.BaseDTO;
import com.xbongbong.paas.toolbox.wrap.BaseVO;
import com.xbongbong.pro.knowledge.base.pojo.dto.DeleteTagDTO;
import com.xbongbong.pro.knowledge.base.pojo.dto.GetTagListDTO;
import com.xbongbong.pro.knowledge.base.pojo.dto.GroupDeleteDTO;
import com.xbongbong.pro.knowledge.base.pojo.dto.SaveGroupDTO;
import com.xbongbong.pro.knowledge.base.pojo.dto.SaveTagDTO;
import com.xbongbong.pro.knowledge.base.pojo.dto.TagListDTO;
import com.xbongbong.pro.knowledge.base.pojo.dto.TagScreenListDTO;
import com.xbongbong.pro.knowledge.base.pojo.vo.GroupListVO;
import com.xbongbong.pro.knowledge.base.pojo.vo.TagListVO;
import com.xbongbong.pro.knowledge.base.pojo.vo.TagScreenListVO;
import com.xbongbong.pro.label.pojo.dto.LabelListDTO;
import com.xbongbong.pro.label.pojo.dto.LabelSortDTO;
/**
 * @Author mingliang
 * @Description
 * @Date 2022/7/4 9:40
 **/
public interface KnowledgeTagService {
    LabelListDTO getTagList(TagListDTO tagListDTO) throws XbbException;

    /**
     * 新增编辑分组
     *
     * @param saveGroupDTO -
     * @throws XbbException -
     */
    BaseVO saveGroup(SaveGroupDTO saveGroupDTO) throws XbbException;

    /**
     * 标签组列表
     *
     * @param baseDTO -
     * @return -
     * @throws XbbException -
     */
    GroupListVO getGroupList(BaseDTO baseDTO) throws XbbException;

    /**
     * 删除分组
     *
     * @param groupDeleteDTO -
     * @return -
     * @throws XbbException -
     */
    BaseVO deleteGroup(GroupDeleteDTO groupDeleteDTO) throws XbbException;

    /**
     * 排序
     *
     * @param labelSortDTO -
     * @throws XbbException -
     */
    BaseVO sort(LabelSortDTO labelSortDTO) throws XbbException;

    /**
     * 标签列表
     *
     * @param getTagListDTO -
     * @return -
     */
    TagListVO tagList(GetTagListDTO getTagListDTO) throws XbbException;

    /**
     * 新增或编辑标签
     *
     * @param saveTagDTO -
     * @throws XbbException -
     */
    BaseVO saveTag(SaveTagDTO saveTagDTO) throws XbbException;

    /**
     * 删除标签
     *
     * @param deleteTagDTO -
     * @throws XbbException -
     */
    BaseVO deleteTag(DeleteTagDTO deleteTagDTO) throws XbbException;

    /**
     * 获取标签列表，按标签组分组 一般用于选择标签时
     *
     * @param tagScreenListDTO -
     * @return -
     */
    TagScreenListVO getScreenList(TagScreenListDTO tagScreenListDTO)throws XbbException;

}
